﻿using System;
using System.Data;
using CLab.BusinessEntity;
using CLab.Common.Constantes;
using GandA.Component.DataAccess.SQLServer;

namespace CLab.DAO
{
    public class PaqueteServiceDAO
    {
        public static int RegistraPaquete(Paquete paq)
        {
            SQLParameterCollection paramsSql = new SQLParameterCollection();

            paramsSql.Add(new SQLParameter(Parametros.pnIdLaboratorio, paq.IdLaboratorio, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.pnIdPaquete, paq.IdPaquete, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.psNomPaquete, paq.Descripcion, SQLParameter.vEnumSqlDbType.VarChar, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.pnPrecio, paq.Precio, SQLParameter.vEnumSqlDbType.Decimal, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.psListaEstudios, paq.ListaEstudios, SQLParameter.vEnumSqlDbType.VarChar, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.psIpMod, paq.IpMod, SQLParameter.vEnumSqlDbType.VarChar, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.pnIdUsuarioMod, paq.IdUsuarioMod, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));

            try
            {
                DataSet ds = new SQL().ExecuteQueryStoreProcedure("spGuardaPaquete", paramsSql);
                return CLab.Common.Util.Convert.ToInt(ds.Tables[0].Rows[0][Columnas.IdPaquete].ToString());
            }
            catch (SQLException ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public static void EliminaPaquete(Paquete obj)
        {
            SQLParameterCollection paramsSql = new SQLParameterCollection();

            paramsSql.Add(new SQLParameter(Parametros.pnIdLaboratorio, obj.IdLaboratorio, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.pnIdPaquete, obj.IdPaquete, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.pnIdUsuarioMod, obj.IdUsuarioMod, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.psIpMod, obj.IpMod, SQLParameter.vEnumSqlDbType.VarChar, SQLParameter.vEnumParameterDirection.vInput));

            try
            {
                new SQL().ExecuteNonQueryStoreProcedure("spEliminaPaquete", paramsSql);
            }
            catch (SQLException ex)
            {
                throw new Exception(ex.Message);
            }
        }
    }
}
